Written descriptions of a computer application program, known as documentation, are a key feature of modern computer software. Computer users are most familiar with two categories of documentation: printed references and tutorials, and on-line references and tutorials. An example of a printed reference is a reference manual, which sets out complete instructions for a program in a systematic way, such that related information is usually grouped together. A user usually consults an index to a reference manual to find all references to a particular topic. Printed tutorials provide the user with a lesson plan and specific data to practice performing application program tasks.
On-line references are similar to printed references, with the exception that on-line references may be selectively displayed by the computer as the program runs. Many computer programs include a help key that the user may depress when on-line documentation is needed. The help key may or may not be context-sensitive. Context-sensitivity refers to when the reference information is tied to what the user is doing in the program at the time the help key is pressed. For example, in a word processing environment, a context-sensitive help key will give a user information about how to edit if the help key is pressed while the user is editing, or about how to print if the help key is pressed while the user is preparing to print. When using a graphical user interface such as Microsoft Windows, a list of topics pertaining to a certain window is displayed if the window is open when the help key is depressed.
An on-line tutorial serves as an introduction for a new user of a computer application program. An on-line tutorial provides information in a linear order which may not be the order in which the user wants to learn or perform tasks. The information is arranged into a series of lessons, in which the user is shown how to perform different application program tasks. After a demonstration, the user is given a chance to practice performing some of the tasks using canned data. An on-line tutorial can run concurrently or on top of an application, but the user cannot do real work while the tutorial is running. Instead, the user must follow the instructions in the tutorial and practice performing tasks using canned examples. The data and computer/user interaction are part of a script previously developed by a programmer.
Although each of the above types of documentation serve a useful purpose, they have their limitations. Printed references require a user to take the time to stop what the user is doing, locate the user's reference manuals, and then search through the manuals for specific information. Further, to do so, a user must know what to look for in the manual. Printed tutorials not only require a user to locate the reference manuals, but they require a user to follow a lesson plan which may be arranged in an order in which the user is not comfortable following.
On-line references are easily accessible and they provide reference information relating to tasks. Context-sensitive help keys provide information about what the user is currently doing in the application program, but only to a limited degree. When a help key is depressed, a search is performed on the on-line reference file for a particular topic. The on-line reference file does not communicate with the application program in any way, allowing the user to be easily confused about required ordering of tasks. A user could read about, for example, how to print a word processing document even before the document is formatted. Using an on-line reference is similar to using a printed reference; the user must know what the user wants to do and search for the information the user needs to do the next task. On-line references do not make any attempt to interact with the application program.
On-line tutorials attempt to teach a user how to perform application program tasks, but they are separate from the application program in such a way that a user cannot use the application program and the tutorial at the same time. The user can only interact with the on-line tutorial in a limited manner, using canned data that may have no meaning to the user and certainly no correlation to the data the user will later use with the application program. The user must also complete an entire lesson on related tasks before exiting the tutorial and trying to perform a particular task with the user's own data.
It would be helpful to have a coaching system that went beyond the above types of documentation to teach a user of an application program how to perform application program tasks while actually running the application program and using the user's own data. It would also be helpful if the coaching system could guide the user's progress in such a way that if the user attempted to perform a task from the wrong place in the application program, the coaching system would notify the user and guide the user to the appropriate place in the application program for the desired task. Because novice users do not always know exactly what task they want to perform, the coaching system should help the user determine the task to be performed to achieve the result desired by the user. At this time, there are no such coaching systems available to a user of a computer system running an application program.